package Interfaz;

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.xml.crypto.Data;

import Logica.Mensaje;
import Logica.ObtenerDatos;

public class EnviarMensaje extends JFrame implements ActionListener{

	//Se declara las variables
	private JLabel labelPara, labelAsunto, labelContenido;
	private JTextField textfieldPara, textfieldAsunto;
	private JTextArea textareaContenido;
	private JButton buttonEnviar;
	private String usuario;
	
	//Constructor de la clase
	public EnviarMensaje() {

		
	}
	
	public EnviarMensaje(String usuario) {
		//Se da valor al usuario
		this.usuario = usuario;
		
		//Se da las caracteristicas de la ventana
		this.setPreferredSize(new Dimension(455, 330));
		this.setLayout(null);
		this.setVisible(true);
		this.setTitle("Ingresar");
		this.pack();
		this.setLocationRelativeTo(null);
		
		//Se Crea las variables en el constructor
		labelPara = new JLabel("Para :");
		labelAsunto = new JLabel("Asunto :");
		labelContenido = new JLabel("Contenido :");
		textfieldPara = new JTextField();
		textfieldAsunto = new JTextField();
		textareaContenido = new JTextArea(400, 120);
		JScrollPane scrollpanePanel = new JScrollPane(textareaContenido){
            @Override
            public Dimension getPreferredSize() {
                return new Dimension(400, 120);
            }
        };
		buttonEnviar = new JButton("Enviar");
		
		//Se agrega las variables en la ventana
		this.add(labelPara);
		this.add(labelAsunto);
		this.add(labelContenido);
		this.add(textfieldPara);
		this.add(textfieldAsunto);
        this.add(scrollpanePanel);
		this.add(buttonEnviar);
		
		//Se ubica las variables en la ventana
		labelPara.setBounds(20, 20, 80, 22);
		labelAsunto.setBounds(20, 50, 80, 22);;
		labelContenido.setBounds(20, 80, 80, 22);
		textfieldPara.setBounds(100, 20, 320, 22);
		textfieldAsunto.setBounds(100, 50, 320, 22);
        scrollpanePanel.setBounds(20, 110, 400, 120);
		buttonEnviar.setBounds(320, 250, 100, 22);
		
		//Se agrega el listener al boton buttonEnviar
		buttonEnviar.addActionListener(this);
		
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if(e.getSource() == buttonEnviar){
			Date ahora  = new Date();
	        SimpleDateFormat formateador = new SimpleDateFormat("dd/MM/yyyy"); 
	        String fecha = formateador.format(ahora );
	        
			Mensaje mensaje = new Mensaje(fecha, textfieldAsunto.getText(), textareaContenido.getText(), textfieldPara.getText());
			
			ObtenerDatos obtenerDatos = new ObtenerDatos();
			
			obtenerDatos.getMiLista().add(mensaje);
			/*
			//Se obtiene los valores desde los textFields
			String asunto = textfieldAsunto.getText();
			String contenido = textareaContenido.getText();
			String paraUsuario = textfieldPara.getText();
			
			//Se crea el nuevo mensaje
			Mensaje nuevoMensaje = new Mensaje();
			
			//Se da valores al mensaje
			nuevoMensaje.SetAsunto(asunto);
			nuevoMensaje.SetContenido(contenido);
			nuevoMensaje.SetFrom(usuario);
			
			//Se obtiene la fecha actual
			DateFormat formatoFecha = new SimpleDateFormat("MM/dd/yyyy");
			Calendar fechaActual = Calendar.getInstance();
			String fecha = formatoFecha.format(fechaActual);
			
			//Se envia la fecha actual al mensaje
			nuevoMensaje.SetFecha(fecha);
			
			//Se busca a los usuarios a enviar
			for (int i = 0, j = 0; i < paraUsuario.length(); i++) {
				if(paraUsuario.charAt(i) == ';' || i == paraUsuario.length() - 1){
					//Se resta desde la posicion incial o donde encontro
					//anteriormente hasta la al nuevo encontrado vv
					char[] usuarioConseguido = new char[i-j];
					//Se crea una lista de caracteres donde se
					//guardara los caracteres del correo encontrado
					paraUsuario.getChars(j, i, usuarioConseguido, 0);
					//Se revisara si ya existe el correo encontrado
					if(nuevoMensaje.ExisteTo(new Persona(String.copyValueOf(usuarioConseguido)))){
						//Se agrega el nuevo destinatario
						nuevoMensaje.AgregarDestinatario(new Persona(String.copyValueOf(usuarioConseguido)), "");
					}
					//Se guarda la ultima posicion encontrada mas 
					//dos espacios por el ';' y el ' '
					j = i + 2;
				}
			}
			*/
		}
	}
	
	public static void main(String[] args) {
		new EnviarMensaje("pepe@hotmail.com").setVisible(true);
	}
	
}
